Computer Programming I Course Information: 2010-2011 Coach Payne (Subject to Revision) Computer Programming I will involve the students in the following activities. Grading for Computer Programming I is based upon a total points scheme rather than individual assignment percent values. The point totals will generally be as follows: Major Tests…..………80-120 points Projects…….…...……80-120 points Quizzes……………....20-50 points Daily assignments…...10-50 points Homework……….……5-10 points The following items are required: 3-Ring notebook Notebook paper Pen or Pencil A flash or thumb drive is highly recommended, but optional. Most assignments and class information may be found at the site http://coachpaynes.blogspot.com/ . Absolutely no food, drink (other than water, with permission), or electrical devices are allowed in the classroom. Unauthorized internet use is not allowed, and can result in having computer time at school removed. Course Guide Unit 1 (~0.5 weeks) - Introduction to Computer Programming - During the first portion of the course we will introduce the following concepts, including terminology:
How computers work
What is a computer?
Terminology (There are many sites. These are just a few!)
The social and ethical ramifications of computer use
Introduction to testing and debugging
Unit 2 (~5 weeks) - Learning to Program with Ruby – Console-based languages were used for many years to train students in both terminology and coding. Rubyis a dynamic, reflective, general purpose object-oriented programming language. It is an open source programming language with a focus on simplicity and productivity, and it has an elegant syntax that is natural to read and easy to write. (from WikiPedia and the Ruby website (http://www.ruby-lang.org/en/)). Part I: Introduction to Ruby
Getting Started with Ruby
Downloading
Mapping to the H:// drive or a flash drive
The interpreter, console, and textpad
A First Program
Part II: Programming in Ruby: Program Design and Implementation
Numbers
Simple Arithmetic
Short Assignments and Projects
Letters
String Arithmetic
Numbers and Digits
Short Assignments and Problems
Variables, Assignments, and Methods
Usage
Conversions
Built-in Methods
Fancy Methods
Mathematical Methods, Random Numbers, and the Math Object
Short Assignments and Problems
Flow Control
Comparison Methods
Branching
Looping
Introduction to Logic
Short Assignments and Problems
Arrays and Iterators
Array Methods
Short Assignments and Problems
Writing Methods
Method Parameters
Local Variables
Return Values
Recursion
Sorting
Short Assignments and Problems
Files
Reading, Writing, Saving, Loading
Short Assignments and Problems
Classes
More Built-In Classes
Writing Classes
Short Assignments and Problems
Blocks and Procs
Methods that take Procs
Methods that Return Procs
Passing Blocks into Methods
Short Assignments and Problems
Unit 3 (~5 weeks) - Learning to Program with Alice - "Visual" coding languages such as Alice, Karel the Robot, and Scratch have been used in high school and college computer science classrooms to immerse students in programming prior to exposing them to an abstract programming language like Java. Alice is object oriented and puts students on the approach for continuing forward with AP computer science using Java. The class will follow an eight week Alice curriculum designed to familiarize students with the following concepts:
● Part I: Introduction to Alice
Getting Started with Alice
Introduction
Alice Concepts
Text and 2D Graphic Images
Programming in Alice: Program Design and Implementation
Scenarios and Storyboards
A First Program
Programming In Alice: Putting Together the Pieces
Built-in Questions and Expressions
Simple Control Structures
Engineering Look and Feel
Part II: Object-Oriented and Event-driven Programming Concepts
Classes and Objects
Methods and Parameters
World-level Methods
Parameters
Class-level Methods and Inheritance
Visible and Invisible Objects
Interactive Programs: Events and Event-Handling
Interactive Programming: Events and Event Handlers
Passing Parameters to Event Handlers
Events
Part III: Using Questions and Control Statements
Questions (Functions) and If/Else
Questions
Execution Control with If/Else and Boolean Questions
Random Numbers and Random Motion
Repetition: Definite and Indefinite Loops
Loops
While – an Indefinite Loop
Events and Repetition
Repetition: Recursion
Introduction to Recursion
Another Flavor of Recursion
Camera and Animation Controls
Part IV: Advanced Topics
Lists and List Processing
Lists
List Search
Poses
Variables and Revisiting Inheritance
Variables
An Array Visualization Using an Index Variable
Debugging with Watch and Text Output
Unit 4 (~5 weeks) – Karel J Robot
Configure Karel J Robot API to work with chosen IDE
Basic programming through Karel J Robot API
Learn primitive robot instructions and simple programs
Create robot world with walls and beepers
Changing positions
Tuning in place
Beeper handling
Robot Java class descriptions
Executing and completing program
Learning program form
Error shut offs and programming errors
Bugs and debugging
Extending robot programming through Java
Defining new classes of robots
Defining new methods
Creating and modifying inherited methods
Stepwise program refinement
A technique for planning, implementing and analyzing programs
Advantages of using new instruction
Creating understandable programs through formatting and documentation
Learning conditionally executed instructions
IF instructions
Methods for robot condition testing
Writing new predicates
Understanding the faceNorth method through recursive and non-recursive implementation
Determine correctness of the IF instruction
IF/ELSE instruction
Nesting IF instructions
Analyzing more complex tests
Learning Instructions that Repeat
The FOR-Loop instruction
The WHILE instruction using a 4 step process
Understanding infinite executions
Nesting while Loop
Integrated Project: (3 days) The Great Maze Escape Project
Major Project
Unit 4 (~2 weeks) – Scratch
Unit 1
Lesson 1: Motion and Sound
Lesson 2: Repeating Actions
Lesson 3: Playing with Color
Lesson 4: Creating Your Own Sprites
Lesson 5: Speaking and Thinking
Lesson 6: Creating Image Effects
Lesson 7: Sounds, Voices and Music
Lesson 8: Creating Animations
Unit 2
Lesson 1: Move, Turn and Point
Lesson 2: Go and Glide, Changing Positions
Lesson 3: Bouncing, Locating the Sprite
Lesson 4: Changing Costumes
Lesson 5: Speaking, Thinking and Graphic Effects
Lesson 6: Size, Presence and Layers
Unit 3
Lesson 1: Playing Sounds
Lesson 2: Playing Drums
Lesson 3: Playing Instruments
Lesson 4: Pen and Color Control
Lesson 5: Pen Size, Shade, Stamp
Unit 4
Lesson 12: Beginning and Waiting
Lesson 13: Repeating Actions
Lesson 14: Broadcasting
Lesson 15: Conditional Actions
Lesson 16: Stopping
The reminder of the semester will be devoted to Java and a Major Project…
Course Information: 2010-2011
Coach Payne
(Subject to Revision)
Computer Programming I will involve the students in the following activities.
Grading for Computer Programming I is based upon a total points scheme rather than individual assignment percent values. The point totals will generally be as follows:
Major Tests…..………80-120 points
Projects…….…...……80-120 points
Quizzes……………....20-50 points
Daily assignments…...10-50 points
Homework……….……5-10 points
The following items are required:
3-Ring notebook
Notebook paper
Pen or Pencil
A flash or thumb drive is highly recommended, but optional.
Most assignments and class information may be found at the site http://coachpaynes.blogspot.com/ .
Absolutely no food, drink (other than water, with permission), or electrical devices are allowed in the classroom.
Unauthorized internet use is not allowed, and can result in having computer time at school removed.
Course Guide
Unit 1 (~0.5 weeks) - Introduction to Computer Programming - During the first portion of the course we will introduce the following concepts, including terminology:
Unit 2 (~5 weeks) - Learning to Program with Ruby – Console-based languages were used for many years to train students in both terminology and coding. Ruby is a dynamic, reflective, general purpose object-oriented programming language. It is an open source programming language with a focus on simplicity and productivity, and it has an elegant syntax that is natural to read and easy to write. (from WikiPedia and the Ruby website (http://www.ruby-lang.org/en/)).
Part I: Introduction to Ruby
- Getting Started with Ruby
- Downloading
- Mapping to the H:// drive or a flash drive
- The interpreter, console, and textpad
- A First Program
Part II: Programming in Ruby: Program Design and Implementation- Numbers
- Simple Arithmetic
- Short Assignments and Projects
- Letters
- String Arithmetic
- Numbers and Digits
- Short Assignments and Problems
- Variables, Assignments, and Methods
- Usage
- Conversions
- Built-in Methods
- Fancy Methods
- Mathematical Methods, Random Numbers, and the Math Object
- Short Assignments and Problems
- Flow Control
- Comparison Methods
- Branching
- Looping
- Introduction to Logic
- Short Assignments and Problems
- Arrays and Iterators
- Array Methods
- Short Assignments and Problems
- Writing Methods
- Method Parameters
- Local Variables
- Return Values
- Recursion
- Sorting
- Short Assignments and Problems
- Files
- Reading, Writing, Saving, Loading
- Short Assignments and Problems
- Classes
- More Built-In Classes
- Writing Classes
- Short Assignments and Problems
- Blocks and Procs
- Methods that take Procs
- Methods that Return Procs
- Passing Blocks into Methods
- Short Assignments and Problems
Unit 3 (~5 weeks) - Learning to Program with Alice - "Visual" coding languages such as Alice, Karel the Robot, and Scratch have been used in high school and college computer science classrooms to immerse students in programming prior to exposing them to an abstract programming language like Java. Alice is object oriented and puts students on the approach for continuing forward with AP computer science using Java. The class will follow an eight week Alice curriculum designed to familiarize students with the following concepts:● Part I: Introduction to Alice
Unit 4 (~5 weeks) – Karel J Robot
Integrated Project: (3 days)
The Great Maze Escape Project
Unit 4 (~2 weeks) – Scratch
The reminder of the semester will be devoted to Java and a Major Project…